<!DOCTYPE html>
<html lang="zh-cn">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <title>smartzheng</title>
  <meta name="renderer" content="webkit" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>

<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />

<meta name="theme-color" content="#f8f5ec" />
<meta name="msapplication-navbutton-color" content="#f8f5ec">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="#f8f5ec">


<meta name="author" content="smartzheng" /><meta name="description" content="Hugo theme even example site." /><meta name="keywords" content="Hugo, theme, even" />






<meta name="generator" content="Hugo 0.68.3 with theme even" />


<link rel="canonical" href="https://smartzheng.github.io/" />
  <link href="https://smartzheng.github.io/index.xml" rel="alternate" type="application/rss+xml" title="smartzheng" />
  <link href="https://smartzheng.github.io/index.xml" rel="feed" type="application/rss+xml" title="smartzheng" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">


<link href="/dist/even.c2a46f00.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.1.20/dist/jquery.fancybox.min.css" integrity="sha256-7TyXnr2YU040zfSP+rEcz29ggW4j56/ujTPwjMzyqFY=" crossorigin="anonymous">


<meta property="og:title" content="smartzheng" />
<meta property="og:description" content="Hugo theme even example site." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://smartzheng.github.io/" />
<meta property="og:updated_time" content="2020-04-01T00:00:00+00:00" />
<meta itemprop="name" content="smartzheng">
<meta itemprop="description" content="Hugo theme even example site."><meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="smartzheng"/>
<meta name="twitter:description" content="Hugo theme even example site."/>

<!--[if lte IE 9]>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/classlist/1.1.20170427/classList.min.js"></script>
<![endif]-->

<!--[if lt IE 9]>
  <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
<![endif]-->

</head>
<body>
  <div id="mobile-navbar" class="mobile-navbar">
  <div class="mobile-header-logo">
    <a href="/" class="logo">smartzheng</a>
  </div>
  <div class="mobile-navbar-icon">
    <span></span>
    <span></span>
    <span></span>
  </div>
</div>
<nav id="mobile-menu" class="mobile-menu slideout-menu">
  <ul class="mobile-menu-list">
    <a href="/">
        <li class="mobile-menu-item">Home</li>
      </a><a href="/post/">
        <li class="mobile-menu-item">Archives</li>
      </a><a href="/tags/">
        <li class="mobile-menu-item">Tags</li>
      </a><a href="/categories/">
        <li class="mobile-menu-item">Categories</li>
      </a>
  </ul>
</nav>
  <div class="container" id="mobile-panel">
    <header id="header" class="header">
        <div class="logo-wrapper">
  <a href="/" class="logo">smartzheng</a>
</div>

<nav class="site-navbar">
  <ul id="menu" class="menu">
    <li class="menu-item">
        <a class="menu-item-link" href="/">Home</a>
      </li><li class="menu-item">
        <a class="menu-item-link" href="/post/">Archives</a>
      </li><li class="menu-item">
        <a class="menu-item-link" href="/tags/">Tags</a>
      </li><li class="menu-item">
        <a class="menu-item-link" href="/categories/">Categories</a>
      </li>
  </ul>
</nav>
    </header>

    <main id="main" class="main">
      <div class="content-wrapper">
        <div id="content" class="content">
          <section id="posts" class="posts">
    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/%E5%89%8D%E7%AB%AF%E4%BC%98%E5%8C%96%E6%8A%80%E5%B7%A7/">前端优化技巧</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2020-04-01 </span>
      <div class="post-category">
          <a href="/categories/%E5%89%8D%E7%AB%AF/"> 前端 </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      HTML/CSS优化技巧 1 . 能用HTML/CSS解决的问题就不用JS 在熟练使用HTML/CSS的条件下, 同样的功能肯定是前者实现更简洁快速,
    </div>
    <div class="read-more">
      <a href="/post/%E5%89%8D%E7%AB%AF%E4%BC%98%E5%8C%96%E6%8A%80%E5%B7%A7/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/android%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%E4%B9%8B%E7%90%86%E8%A7%A3binder%E9%80%9A%E4%BF%A1%E6%9C%BA%E5%88%B6/">Android源码分析之理解Binder通信机制</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2019-10-23 </span>
      <div class="post-category">
          <a href="/categories/android/"> Android </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      IPC，即Inner-Process-communication，进程间通信，是Android系统中比较难以理解的一个概念。而Binder则
    </div>
    <div class="read-more">
      <a href="/post/android%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%E4%B9%8B%E7%90%86%E8%A7%A3binder%E9%80%9A%E4%BF%A1%E6%9C%BA%E5%88%B6/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/%E9%80%90%E8%A1%8C%E7%90%86%E8%A7%A3create-react-app%E4%B8%AD%E7%9A%84package.json/">逐行理解create-react-app中的package.json</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2019-09-30 </span>
      <div class="post-category">
          <a href="/categories/web%E5%89%8D%E7%AB%AF/"> web前端 </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      下面是自己react项目初始化之后的package.json文件，除了个别自己新增依赖以外，基本是create-react-app生成的默认
    </div>
    <div class="read-more">
      <a href="/post/%E9%80%90%E8%A1%8C%E7%90%86%E8%A7%A3create-react-app%E4%B8%AD%E7%9A%84package.json/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3javascript%E4%B9%8B%E5%8E%9F%E5%9E%8B%E4%B8%8E%E5%8E%9F%E5%9E%8B%E9%93%BE/">深入理解JavaScript之原型与原型链</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2019-09-29 </span>
      <div class="post-category">
          <a href="/categories/web%E5%89%8D%E7%AB%AF/"> web前端 </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      JavaScript是一门面向对象的语言，继承是面向对象的一大特性，但是严格来讲JavaScript中却没有通常含义上的继承，只能模拟继承，
    </div>
    <div class="read-more">
      <a href="/post/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3javascript%E4%B9%8B%E5%8E%9F%E5%9E%8B%E4%B8%8E%E5%8E%9F%E5%9E%8B%E9%93%BE/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3javascript%E4%B9%8Bthis%E8%A7%A3%E6%9E%90/">深入理解JavaScript之this解析</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2019-09-27 </span>
      <div class="post-category">
          <a href="/categories/web%E5%89%8D%E7%AB%AF/"> web前端 </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      引言 在过去用Java或Kotlin进行Android开发的时候，this从来不是一个问题，即使是在内部类中this也存在指向问题，但是使用t
    </div>
    <div class="read-more">
      <a href="/post/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3javascript%E4%B9%8Bthis%E8%A7%A3%E6%9E%90/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3javascript%E4%B9%8B%E6%89%A7%E8%A1%8C%E7%8E%AF%E5%A2%83%E5%92%8C%E4%BD%9C%E7%94%A8%E5%9F%9F%E9%93%BE/">深入理解JavaScript之执行环境和作用域链</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2019-08-28 </span>
      <div class="post-category">
          <a href="/categories/web%E5%89%8D%E7%AB%AF/"> web前端 </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      引言 在Java中，被花括号包起的代码具有独立的作用域，这一点与大部分语言都差不多，在理解和使用上都很简单，而JS中的作用域却相对较为复杂，例
    </div>
    <div class="read-more">
      <a href="/post/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3javascript%E4%B9%8B%E6%89%A7%E8%A1%8C%E7%8E%AF%E5%A2%83%E5%92%8C%E4%BD%9C%E7%94%A8%E5%9F%9F%E9%93%BE/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3javascript%E4%B9%8B%E4%BD%9C%E7%94%A8%E5%9F%9F%E9%97%AD%E5%8C%85/">深入理解JavaScript之作用域闭包</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2019-08-23 </span>
      <div class="post-category">
          <a href="/categories/web%E5%89%8D%E7%AB%AF/"> web前端 </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      在Java中，由于1.8之前函数并不能被当做参数传递，而且Java中变量声明可以看做是类似于ES6中的let const，自动拥有块级作用域，
    </div>
    <div class="read-more">
      <a href="/post/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3javascript%E4%B9%8B%E4%BD%9C%E7%94%A8%E5%9F%9F%E9%97%AD%E5%8C%85/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/react-hooks%E5%AD%A6%E4%B9%A0%E4%BC%98%E5%8A%BF%E5%8F%8A%E4%BD%BF%E7%94%A8/">React Hooks学习：优势及使用</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2019-08-15 </span>
      <div class="post-category">
          <a href="/categories/web%E5%89%8D%E7%AB%AF/"> web前端 </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      Hooks 是React的一次革命性升级，本文将对其优势和API进行比较全面的解析 为什么要有hooks 在没有hooks之前，除了对于一些无状态组件可以
    </div>
    <div class="read-more">
      <a href="/post/react-hooks%E5%AD%A6%E4%B9%A0%E4%BC%98%E5%8A%BF%E5%8F%8A%E4%BD%BF%E7%94%A8/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/webpack%E5%AD%A6%E4%B9%A0%E4%B9%8B%E8%BF%9B%E9%98%B6%E7%9F%A5%E8%AF%86%E7%82%B9/">webpack学习：进阶知识点</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2019-08-08 </span>
      <div class="post-category">
          <a href="/categories/web%E5%89%8D%E7%AB%AF/"> web前端 </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      1.Tree Shaking 移除JavaScript上下文中的未引用代码(dead-code)，需要将mode选项设置为production开启，且只支持ES Module 配置
    </div>
    <div class="read-more">
      <a href="/post/webpack%E5%AD%A6%E4%B9%A0%E4%B9%8B%E8%BF%9B%E9%98%B6%E7%9F%A5%E8%AF%86%E7%82%B9/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/webpack%E5%AD%A6%E4%B9%A0%E4%B9%8Bloader/">webpack学习： loader</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2019-08-07 </span>
      <div class="post-category">
          <a href="/categories/web%E5%89%8D%E7%AB%AF/"> web前端 </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      1.什么是loader webpack enables use of loaders to preprocess files. This allows you to bundle any static resource way beyond JavaScript. You can easily write your own loaders using Node.js. Loaders are activated by using loadername! prefixes in require() statements, or are automatically applied via regex from your webpack configuration 在webpack中,通
    </div>
    <div class="read-more">
      <a href="/post/webpack%E5%AD%A6%E4%B9%A0%E4%B9%8Bloader/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/webpack%E5%AD%A6%E4%B9%A0%E4%B9%8Bplugin/">Webpack学习：plugin</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2019-08-07 </span>
      <div class="post-category">
          <a href="/categories/web%E5%89%8D%E7%AB%AF/"> web前端 </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      1.plugin和loader的区别 loader: webpack只能理解JavaScript和JSON文件。loader让webpack能够去处理其他类
    </div>
    <div class="read-more">
      <a href="/post/webpack%E5%AD%A6%E4%B9%A0%E4%B9%8Bplugin/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/webpack%E5%AD%A6%E4%B9%A0%E4%B9%8B%E4%BD%BF%E7%94%A8%E5%88%9D%E6%8E%A2/">webpack学习：使用初探</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2019-08-05 </span>
      <div class="post-category">
          <a href="/categories/web%E5%89%8D%E7%AB%AF/"> web前端 </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      1.webpack是什么，解决了什么问题 模块打包工具,能简化复杂的模块引入,解决模块之间的相互依赖的问题. 2.模块是什么,如何使用模块 mod
    </div>
    <div class="read-more">
      <a href="/post/webpack%E5%AD%A6%E4%B9%A0%E4%B9%8B%E4%BD%BF%E7%94%A8%E5%88%9D%E6%8E%A2/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/java%E5%B9%B6%E5%8F%91%E4%B9%8B%E5%A4%9A%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E6%80%BB%E7%BB%93/">Java并发：多线程安全总结</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2019-05-31 </span>
      <div class="post-category">
          <a href="/categories/android/"> Android </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      1.并发基础 定义：一个cpu“同时”处理多个任务，而多个线程都在争取这个cpu资源 1.1 优点 充分发挥多核CPU的计算能力 方便进行业务拆分，提升应
    </div>
    <div class="read-more">
      <a href="/post/java%E5%B9%B6%E5%8F%91%E4%B9%8B%E5%A4%9A%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E6%80%BB%E7%BB%93/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/navigation%E8%BF%94%E5%9B%9Efragment%E9%87%8D%E8%B5%B0oncreateview%E9%97%AE%E9%A2%98/">Navigation返回Fragment重走onCreateView问题</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2019-05-31 </span>
      <div class="post-category">
          <a href="/categories/android/"> Android </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      在使用Navigation的过程中，发现其页面跳转效率确实很不错，XML管理页面跳转逻辑以及fragment之间的参数传递使用起来都很方便，
    </div>
    <div class="read-more">
      <a href="/post/navigation%E8%BF%94%E5%9B%9Efragment%E9%87%8D%E8%B5%B0oncreateview%E9%97%AE%E9%A2%98/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/rxjava%E5%9F%BA%E6%9C%AC%E8%AF%AD%E6%B3%95%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/">RxJava基本语法源码分析</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2019-05-05 </span>
      <div class="post-category">
          <a href="/categories/android/"> Android </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      最近看了下网上的RxJava源码分析，发现所基于的源码版本和最新的略有不同，于是自己动手翻阅了一下最新的源码版本（rxjava:2.2.8，
    </div>
    <div class="read-more">
      <a href="/post/rxjava%E5%9F%BA%E6%9C%AC%E8%AF%AD%E6%B3%95%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/android%E5%90%AF%E5%8A%A8%E4%BC%98%E5%8C%96%E6%9C%80%E4%BD%B3%E6%96%B9%E6%A1%88%E5%8E%BB%E5%90%AF%E5%8A%A8%E9%A1%B5%E5%92%8C%E5%BC%82%E6%AD%A5%E5%88%9D%E5%A7%8B%E5%8C%96/">Android启动优化最佳方案：去启动页和异步初始化</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2019-04-25 </span>
      <div class="post-category">
          <a href="/categories/android/"> Android </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      项目地址：https://github.com/smartzheng/asyncstarter 随着APP的日渐增大，集成的三方库也越来越多，
    </div>
    <div class="read-more">
      <a href="/post/android%E5%90%AF%E5%8A%A8%E4%BC%98%E5%8C%96%E6%9C%80%E4%BD%B3%E6%96%B9%E6%A1%88%E5%8E%BB%E5%90%AF%E5%8A%A8%E9%A1%B5%E5%92%8C%E5%BC%82%E6%AD%A5%E5%88%9D%E5%A7%8B%E5%8C%96/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/%E4%BC%AA%E5%BF%83%E7%90%86%E5%AD%A6%E7%9A%84%E6%9C%AC%E8%B4%A8/">伪心理学的本质</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2019-03-15 </span>
      <div class="post-category">
          <a href="/categories/%E9%9A%8F%E7%AC%94/"> 随笔 </a>
          <a href="/categories/%E8%AF%BB%E4%B9%A6/"> 读书 </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      1.弗洛伊德问题 一次和人讨论，谈及人生活的目的，对方用马斯洛需求定理给予答复，我回答说：这样的理论实际上来自于总结，并算不上是心理学，或者说
    </div>
    <div class="read-more">
      <a href="/post/%E4%BC%AA%E5%BF%83%E7%90%86%E5%AD%A6%E7%9A%84%E6%9C%AC%E8%B4%A8/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/activitymanagerservice%E7%AE%80%E6%9E%90/">ActivityManagerService简析</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2019-03-05 </span>
      <div class="post-category">
          <a href="/categories/android/"> Android </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      AMS在Android系统中扮演很重要的角色，主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调度等工作，其职责与操作系统中的进程
    </div>
    <div class="read-more">
      <a href="/post/activitymanagerservice%E7%AE%80%E6%9E%90/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/android%E8%BF%9B%E7%A8%8B%E5%90%AF%E5%8A%A8%E6%B5%81%E7%A8%8B%E7%AE%80%E6%9E%90/">Android进程启动流程简析</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2019-02-22 </span>
      <div class="post-category">
          <a href="/categories/android/"> Android </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      自己画了一张简单流程图： 启动一个新进程主要涉及四步： 1、发送启动进程的需求，可能是Launcher启动一个新的APP，或者APP开启独立进程
    </div>
    <div class="read-more">
      <a href="/post/android%E8%BF%9B%E7%A8%8B%E5%90%AF%E5%8A%A8%E6%B5%81%E7%A8%8B%E7%AE%80%E6%9E%90/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/%E5%88%A9%E7%94%A8python%E5%AE%9E%E7%8E%B0android%E6%9B%BF%E6%8D%A2%E5%86%85%E5%AE%B9%E6%89%B9%E9%87%8F%E6%89%93%E5%8C%85/">利用Python实现Android替换内容批量打包</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2018-03-28 </span>
      <div class="post-category">
          <a href="/categories/python/"> Python </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      工作中有一个定制需求：根据不同的用户需求，需要替换APP内的图片，以及部分代码里面的配置信息，打出不同的apk交给客户使用。如果只用生成少量
    </div>
    <div class="read-more">
      <a href="/post/%E5%88%A9%E7%94%A8python%E5%AE%9E%E7%8E%B0android%E6%9B%BF%E6%8D%A2%E5%86%85%E5%AE%B9%E6%89%B9%E9%87%8F%E6%89%93%E5%8C%85/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/%E5%88%A9%E7%94%A8spannablestring%E5%AF%8C%E6%96%87%E6%9C%AC%E6%96%B9%E5%BC%8F%E8%AE%BE%E7%BD%AE%E5%9C%86%E8%A7%92%E6%A0%87%E7%AD%BE%E8%83%8C%E6%99%AF/">利用SpannableString富文本方式设置圆角标签背景</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2018-03-28 </span>
      <div class="post-category">
          <a href="/categories/android/"> Android </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      项目中遇到一个需求,需要在商品标题加上标签,而标签是客户可以后台配置的,所以不是用的图片,而是用的文字.如下图: 众所周知,在Android中
    </div>
    <div class="read-more">
      <a href="/post/%E5%88%A9%E7%94%A8spannablestring%E5%AF%8C%E6%96%87%E6%9C%AC%E6%96%B9%E5%BC%8F%E8%AE%BE%E7%BD%AE%E5%9C%86%E8%A7%92%E6%A0%87%E7%AD%BE%E8%83%8C%E6%99%AF/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/bilibili%E5%BC%80%E6%BA%90%E5%BA%93ijkpalyer%E7%9A%84%E9%9B%86%E6%88%90%E5%92%8C%E4%BD%BF%E7%94%A8/">bilibili开源库ijkPalyer的集成和使用</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2017-12-08 </span>
      <div class="post-category">
          <a href="/categories/android/"> Android </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      最近在我的个人项目中集成了bilibili视频播放库ijkPalyer，网上的很多教程所写的是之前版本的使用方法，官方文档也没有写的太清楚，
    </div>
    <div class="read-more">
      <a href="/post/bilibili%E5%BC%80%E6%BA%90%E5%BA%93ijkpalyer%E7%9A%84%E9%9B%86%E6%88%90%E5%92%8C%E4%BD%BF%E7%94%A8/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/%E7%8E%8B%E6%B2%AA%E5%AE%81%E4%B8%8E%E4%BB%96%E7%9A%84%E6%94%BF%E6%B2%BB%E4%BA%BA%E7%94%9F/">王沪宁与他的政治人生</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2017-11-26 </span>
      <div class="post-category">
          <a href="/categories/%E9%9A%8F%E7%AC%94/"> 随笔 </a>
          <a href="/categories/%E8%AF%BB%E4%B9%A6/"> 读书 </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      虽然对于政治不再那么热衷，但会议之后对国师的不少文章引起了我很大的兴趣，于是买了这本他1994年的日记集来看。 折服于国师的博学和睿智，以及字
    </div>
    <div class="read-more">
      <a href="/post/%E7%8E%8B%E6%B2%AA%E5%AE%81%E4%B8%8E%E4%BB%96%E7%9A%84%E6%94%BF%E6%B2%BB%E4%BA%BA%E7%94%9F/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/%E6%B1%9F%E6%AD%8C%E6%A1%88%E5%92%8C%E8%88%86%E8%AE%BA%E7%9A%84%E9%80%BB%E8%BE%91/">江歌案和舆论的逻辑</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2017-11-15 </span>
      <div class="post-category">
          <a href="/categories/%E9%9A%8F%E7%AC%94/"> 随笔 </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      现在对时事不再那么热忱，直到昨天上午翻看豆瓣，才发现被这个事情刷屏。在网上查阅了一下，知道了个大概，后来打开知乎，发现基本全屏的问答都是这个
    </div>
    <div class="read-more">
      <a href="/post/%E6%B1%9F%E6%AD%8C%E6%A1%88%E5%92%8C%E8%88%86%E8%AE%BA%E7%9A%84%E9%80%BB%E8%BE%91/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/%E5%9C%A8windows%E9%85%8D%E7%BD%AEcentos%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AE%9E%E7%8E%B0android%E9%A1%B9%E7%9B%AE%E8%BF%9C%E7%A8%8B%E6%89%93%E5%8C%85/">在Windows配置Centos服务器实现Android项目远程打包</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2017-09-29 </span>
      <div class="post-category">
          <a href="/categories/android/"> Android </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      0.需求 平时开发测试环节中涉及多次回归测试，于是考虑对服务器进行配置，当开发完后每次push代码，测试部门即可从服务器打包pull进行测试。
    </div>
    <div class="read-more">
      <a href="/post/%E5%9C%A8windows%E9%85%8D%E7%BD%AEcentos%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AE%9E%E7%8E%B0android%E9%A1%B9%E7%9B%AE%E8%BF%9C%E7%A8%8B%E6%89%93%E5%8C%85/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/android%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%E4%B9%8B%E6%B5%85%E6%9E%90android%E7%B3%BB%E7%BB%9F%E5%90%AF%E5%8A%A8%E8%BF%87%E7%A8%8B/">Android源码分析之浅析Android系统启动过程</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2017-09-27 </span>
      <div class="post-category">
          <a href="/categories/android/"> Android </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      0.Android的两个世界 Android系统存在两个世界：Java世界和Native（C或者C++的世界）世界，而大部分应用层开发者除了少
    </div>
    <div class="read-more">
      <a href="/post/android%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%E4%B9%8B%E6%B5%85%E6%9E%90android%E7%B3%BB%E7%BB%9F%E5%90%AF%E5%8A%A8%E8%BF%87%E7%A8%8B/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/%E7%88%B1%E6%83%85%E7%9A%84%E6%9C%AC%E8%B4%A8/">爱情的本质</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2017-09-27 </span>
      <div class="post-category">
          <a href="/categories/%E9%9A%8F%E7%AC%94/"> 随笔 </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      石子落水会下沉，含羞草被触碰会闭合，狗看见骨头会吐舌头流口水。 公式就是，刺激&ndash;&gt;反应，刺激和反应可以是复杂的多样的，人也符
    </div>
    <div class="read-more">
      <a href="/post/%E7%88%B1%E6%83%85%E7%9A%84%E6%9C%AC%E8%B4%A8/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/%E8%AF%BB%E4%B9%A6%E7%9A%84%E5%8E%86%E7%A8%8B/">读书的历程</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2017-09-27 </span>
      <div class="post-category">
          <a href="/categories/%E9%9A%8F%E7%AC%94/"> 随笔 </a>
          <a href="/categories/%E8%AF%BB%E4%B9%A6/"> 读书 </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      《曼珠沙华》 沧月 初中某天，学校门外出现了一个盗版书摊，而这是我在那买的第一本喜欢的书。由此喜欢上了阅读，而第一个最喜欢的作家就是沧月。 《神雕
    </div>
    <div class="read-more">
      <a href="/post/%E8%AF%BB%E4%B9%A6%E7%9A%84%E5%8E%86%E7%A8%8B/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/scrollview%E5%B5%8C%E5%A5%97listview%E6%98%BE%E7%A4%BA%E4%B8%8D%E5%85%A8%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95/">ScrollView嵌套ListView显示不全的解决方法</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2017-09-22 </span>
      <div class="post-category">
          <a href="/categories/android/"> Android </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      摘要:开发中经常遇到ScrollView嵌套ListView,GridView,或者RecyclerView嵌套RecyclerView的情
    </div>
    <div class="read-more">
      <a href="/post/scrollview%E5%B5%8C%E5%A5%97listview%E6%98%BE%E7%A4%BA%E4%B8%8D%E5%85%A8%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/swiperefreshlayout%E6%89%8B%E5%8A%A8%E8%B0%83%E7%94%A8setrefreshtrue%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%E7%9A%84%E5%8E%9F%E5%9B%A0/">SwipeRefreshLayout手动调用setRefresh(true)不起作用的原因</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2017-09-22 </span>
      <div class="post-category">
          <a href="/categories/android/"> Android </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      1.现象 往往发生这个现象是出现在onCreate中去调用这个方法,会发现不起作用.原因是在onCreate方法中view未加载完全,所以不能
    </div>
    <div class="read-more">
      <a href="/post/swiperefreshlayout%E6%89%8B%E5%8A%A8%E8%B0%83%E7%94%A8setrefreshtrue%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%E7%9A%84%E5%8E%9F%E5%9B%A0/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/android%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%E4%B9%8B%E6%BA%90%E7%A0%81%E5%AF%BC%E5%85%A5androidstudio%E5%92%8Ceclipse/">Android源码分析之源码导入AndroidStudio和Eclipse</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2017-07-08 </span>
      <div class="post-category">
          <a href="/categories/android/"> Android </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      之前学习Android源码的时候用的sourceinsight，始终感觉类跳转不大精确而且使用久了会有卡顿，就一直想着如何能在Android
    </div>
    <div class="read-more">
      <a href="/post/android%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%E4%B9%8B%E6%BA%90%E7%A0%81%E5%AF%BC%E5%85%A5androidstudio%E5%92%8Ceclipse/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    <article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="/post/%E6%88%91%E7%9A%84%E8%AF%BB%E4%B9%A6%E5%8F%B2/">我的读书史</a></h1>
    <div class="post-meta">
      <span class="post-time"> 2013-02-07 </span>
      <div class="post-category">
          <a href="/categories/%E9%9A%8F%E7%AC%94/"> 随笔 </a>
          <a href="/categories/%E8%AF%BB%E4%B9%A6/"> 读书 </a>
          </div>
    </div>
  </header>
  
  <div class="post-content">
    <div class="post-summary">
      我出生在农村，家里条件不是很好。小时候喜欢节约一点钱买一块钱一本的连环画。奥特曼、数码宝贝都是我的最爱。还有能记得的就是那时候在同学那里借来
    </div>
    <div class="read-more">
      <a href="/post/%E6%88%91%E7%9A%84%E8%AF%BB%E4%B9%A6%E5%8F%B2/" class="read-more-link">阅读更多</a>
    </div>
  </div>
</article>

    </section>
  
  <nav class="pagination">
    
    
  </nav>
        </div>
        

      </div>
    </main>

    <footer id="footer" class="footer">
      <div class="social-links">
      <a href="mailto:smartzheng1993@email.com" class="iconfont icon-email" title="email"></a>
      <a href="https://github.com/smartzheng" class="iconfont icon-github" title="github"></a>
      <a href="https://weibo.com/2062336885/profile?topnav=1&amp;wvr=6" class="iconfont icon-weibo" title="weibo"></a>
      <a href="https://www.zhihu.com/people/liu-xia-hui-89-70" class="iconfont icon-zhihu" title="zhihu"></a>
      <a href="https://www.douban.com/people/smartzheng/" class="iconfont icon-douban" title="douban"></a>
  <a href="https://smartzheng.github.io/index.xml" type="application/rss+xml" class="iconfont icon-rss" title="rss"></a>
</div>

<div class="copyright">
  <span class="power-by">
    由 <a class="hexo-link" href="https://gohugo.io">Hugo</a> 强力驱动
  </span>
  <span class="division">|</span>
  <span class="theme-info">
    主题 - 
    <a class="theme-link" href="https://github.com/olOwOlo/hugo-theme-even">Even</a>
  </span>

  

  <span class="copyright-year">
    &copy; 
    2017 - 
    2020
    
  </span>
</div>
    </footer>

    <div class="back-to-top" id="back-to-top">
      <i class="iconfont icon-up"></i>
    </div>
  </div>
  
  <script src="https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
  <script src="https://cdn.jsdelivr.net/npm/slideout@1.0.1/dist/slideout.min.js" integrity="sha256-t+zJ/g8/KXIJMjSVQdnibt4dlaDxc9zXr/9oNPeWqdg=" crossorigin="anonymous"></script>
  <script src="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.1.20/dist/jquery.fancybox.min.js" integrity="sha256-XVLffZaxoWfGUEbdzuLi7pwaUJv1cecsQJQqGLe7axY=" crossorigin="anonymous"></script>
<script type="text/javascript" src="/dist/even.26188efa.min.js"></script>








</body>
</html>
